﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Text.RegularExpressions;
using System.Globalization;

namespace supervisor_de_cajas
{
    public partial class login : Form
    {
        public login()
        {
            InitializeComponent();
        }
        Gestion g = new Gestion();
        
        public static string sesion;
        public static int id;
        private void login_Load(object sender, EventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
        private void ComprobarCajero(string rut,string pass)
        {
            Conexion conn = new Conexion();
            conn.conectar();
            if (txtrut.Text == "")
            {
                MessageBox.Show("¡Faltan datos!", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Information);
                //LimpiarCampos();
            }
            else
            {
                string sql = "SELECT idcajero,rut,pass FROM cajero where estado='Activo' AND rut = '" + rut + "' AND pass = '" + pass+ "'";
                try
                {
                    SqlCommand cmd = new SqlCommand(sql, conn.conector);
                    cmd.ExecuteNonQuery();
                    SqlDataReader dr = cmd.ExecuteReader();

                    if (dr.Read())
                    {

                        id = int.Parse(dr["idcajero"].ToString());
                        DateTime fechaHoy = DateTime.Now;

                        string horaInicio = fechaHoy.TimeOfDay.ToString();
                        string horaCierre = "";
                        string fecha = fechaHoy.Date.ToString();
                        //abrir menu administrador
                         g.insertarTurnoCajero(horaInicio, horaCierre, fecha, id);
                         g.InsertarRetiro(fecha,0,id,34);
                        MenuCajero m = new MenuCajero();
                        m.ShowDialog();
                        this.Hide();
                        
                    }
                    else
                    {
                        //abrir menu administrador
                        //comprobarVendedor(user);
                        MessageBox.Show("Intente nuevamente, usuario y/o contraseña no válida", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtrut.Focus();
                    }
                }
                catch (SqlException ex)
                {
                    MessageBox.Show("Error al intentar conectar con SQL Server" + ex, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    string a = ex.Message;
                }
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            
            
            string rutCompleto = txtrut.Text + txtdigito.Text;
            sesion=rutCompleto;
            //rutC = rutCompleto;
            //    int idperfil = ges.idPerfilRut(rutCompleto);
            txtrut.Text = Regex.Replace(txtrut.Text.Trim(), @"\s+", " ");
            txtpass.Text = Regex.Replace(txtpass.Text.Trim(), @"\s+", " ");
            //Usuario user = new Usuario();
            //user.rut_user = rutCompleto;
            //user.contrasena = txtpass.Text;

            Conexion conn = new Conexion();
            conn.conectar();
            if (txtrut.Text == "")
            {
                MessageBox.Show("¡Faltan datos!", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Information);
                //LimpiarCampos();
            }
            else
            {
                string sql = "SELECT idsupervisor,rut,pass FROM supervisor where estado='Activo' AND rut = '" + rutCompleto + "' AND pass = '" + txtpass.Text + "'";
                try
                {
                    SqlCommand cmd = new SqlCommand(sql, conn.conector);
                    cmd.ExecuteNonQuery();
                    SqlDataReader dr = cmd.ExecuteReader();
                    
                    if (dr.Read())
                    {
                        
                        id = int.Parse(dr["idsupervisor"].ToString());
                        DateTime fechaHoy = DateTime.Now;
                        
                        string horaInicio = fechaHoy.TimeOfDay.ToString();
                        string horaCierre = "";
                        string fecha = fechaHoy.Date.ToString();
                        //abrir menu administrador
                        g.insertarTurnoSupervisor(horaInicio,horaCierre,fecha,id);
                        MenuSupervisor menuad = new MenuSupervisor();
                        menuad.Show();

                        this.Hide();
                    }
                    else
                    {
                        //abrir menu administrador
                        //comprobarVendedor(user);
                        //MessageBox.Show("Intente nuevamente, usuario y/o contraseña no válida", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        //this.Hide();
                        ComprobarCajero(rutCompleto,txtpass.Text);
                        
                        //txtrut.Focus();
                    }
                }
                catch (SqlException ex)
                {
                    MessageBox.Show("Error al intentar conectar con SQL Server"+ex , "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    string a = ex.Message;
                }

            }
        }

        private void txtrut_TextChanged(object sender, EventArgs e)
        {
            if (txtrut.Text == "")
            {
                txtdigito.Text = "";
            }
            if (txtrut.TextLength == 7 || txtrut.TextLength == 8)
            {
                int rut = Convert.ToInt32(txtrut.Text);
                string digito = g.digitoVerificador(rut);
                txtdigito.Text = digito;
            }
        }

        private void txtrut_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsDigit(e.KeyChar))
            {
                e.Handled = false;
            }
            else
                if (Char.IsControl(e.KeyChar)) //permitir teclas de control como retroceso 
                {
                    e.Handled = false;
                }
                else
                {
                    //el resto de teclas pulsadas se desactivan 
                    e.Handled = true;
                }
        }

        private void txtpass_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!char.IsLetter(e.KeyChar) && !char.IsControl(e.KeyChar) && !char.IsSeparator(e.KeyChar) && !char.IsDigit(e.KeyChar)) { e.Handled = true; } else { e.Handled = false; }
        }
    }
}
